import cv2
from decimal import Decimal

class get_video_info():

    def __init__(self,video_path):
        self.cv2_api=cv2.VideoCapture(video_path)

    def get_video_fps(self):
        '''
            返回视频的帧率
            float类型
        :return:

        '''
        return float(Decimal(str(self.cv2_api.get(5))).quantize(Decimal('0.000')))

    def get_video_frame_total(self):
        '''
            返回视频的总帧数
            int类型
        :return:
        '''
        return int(self.cv2_api.get(7))

    def get_video_height_width(self):
        '''
            返回视频的 宽 和 高
            tuple格式
            前面是宽 后面是高
            (1920,1080)
        :return:
        '''
        return (int(self.cv2_api.get(3)),int(self.cv2_api.get(4)))

    def get_cv2_api(self):
        for i in range(0,10):
            print(self.cv2_api.get(i))

        return self.cv2_api


if __name__ == '__main__':
    a=get_video_info(video_path=r'G:\侏罗纪世界2\test.mp4')
    b=a.get_video_fps()
    a.get_video_frame_total()
    c=a.get_video_height_width()
    print(c)
    a.get_cv2_api()
